//函数的类型转换
package main

import (
	"fmt"
)

type CalculateType func(int, int) // 声明了一个函数类型

// 该函数类型实现了一个方法
func (c *CalculateType) Serve() {
	fmt.Println("我是一个函数类型")
}

// 加法函数
func add(a, b int) {
	fmt.Println(a + b)
}

// 乘法函数
func mul(a, b int) {
	fmt.Println(a * b)
}


func filter1(a int, f CalculateType) {
	if a>7{
		f(3, 4)
	}else {
		f(3, 4)
	}
}

func main() {
	a := CalculateType(add) // 将add函数强制转换成CalculateType类型
	b := CalculateType(mul) // 将mul函数强制转换成CalculateType类型

	filter1(1, add)
	filter1(8, mul)

	a(2, 3)
	b(2, 3)
	a.Serve()
	b.Serve()

	//http.HandleFunc()
}
